package btInquiryRssi;

/**
 * L'inquiry bluetooth viene effettuato da un componente scritto in linguaggio C,
 * eseguito sul gateway-MASTER.
 * Ne viene qui fornita l'interfaccia Java che serve da "ponte" di collegamento tra
 * i due ambienti (inquiry bluetooth in C ed il resto dell'applicazione in Java).
 * @author erond
 *
 */

public interface IBluetooth {
	
	 /**
	  *  init() viene invocato, senza parametri in ingresso, nella fase di bootstrap della applicazione.
	  *  In particolare richiederà al "sottostante" modulo C di settare il driver dell'hardware bluetooth 
	  *  in modalità inquiry RSSI
	  * @return boolean=true se il settaggio è andato a buon fine, false altrimenti.
	  */
	 public boolean init();
	 
	 /**
	  *  init(int devID) viene invocato con un parametro in ingresso corrispondendente al device ID del dispositivo 
	  *  bluetooth da utilizzare per effettuare gli inquiry.
	  *  In particolare richiederà al "sottostante" modulo C di settare il driver dell'hardware bluetooth 
	  *  in modalità inquiry RSSI
	  * @return boolean=true se il settaggio è andato a buon fine, false altrimenti.
	  */
	 public boolean init(int devID);
	 
	 /**
	  * il metodo inquiry(int max_time,int max_devices) con 2 parametri in ingresso:
	  * @param max_time=numero massimo di secondi entro il quale restituire il risultato dell'inquiry
	  * @param max_devices=numero massimo di dispositivi da restituire in seguito all'inquiry
	  * @return String[]=Ogni elemento dell'array sarà una UNICA stringa, costruita come "MACaddress,RSSI"
	  */
	 public String[] inquiry(int max_time,int max_devices);
	 
	 /**
	  * shutDown() viene invocato, senza parametri in ingresso, nella fase di spegnimento del sistema,
	  * al fine di liberare la risorsa hardware bluetooth dal sistema operativo.
	  * Comunicherà il comando al modulo C "sottostante".
	  * @return boolean=true/false, a seconda rispettivamente che lo spegnimento sia/non sia andato a buon fine.
	  */
	 public boolean shutDown();
	 
	}
